home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
AMICUS
/
AMICUS04.ADF
/
idemo
/
demomenu.c
next >
Wrap
C/C++ Source or Header
|
1985-10-26
|
23KB
|
777 lines
/****************************************************************
* *
* Copyright 1985, Commodore Amiga Inc. All rights reserved. *
* No part of this program may be reproduced, transmitted, *
* transcribed, stored in retrieval system, or translated into *
* any language or computer language, in any form or by any *
* means, electronic, mechanical, magnetic, optical, chemical, *
* manual or otherwise, without the prior written permission of *
* Commodore Amiga Incorporated, 983 University Ave, #D *
* Los Gatos, CA 95030 *
* *
****************************************************************/
/*** demomenu.c ***/
/*****************************************************************************
*
* INTUITION Test Suite -- menu structures
*
* =Robert J. Mical=
* 28 April 1985
* (created: 31 January 1985)
*
* At one time or another, this program has tested all of the INTUITION
* features, and sometimes has tested even the limits of my patience.
*
* CONFIDENTIAL and PROPRIETARY
* Copyright (C) 1985, COMMODORE-AMIGA, INC.
* All Rights Reserved
*
****************************************************************************/
#include "idemoall.h"
extern struct TextAttr TestFont;
extern struct TextAttr TopazSixty;
/* ======================================================================== */
/* === Menu Demo Data ===================================================== */
/* ======================================================================== */
/* this is the eyeball image displayed as one of the SubItems */
USHORT EyeData[] =
{
0xFFFF, 0xFFC0, 0xFFFF, 0xFFFF,
0xFFFF, 0xFC00, 0x3FFF, 0xFFFF,
0xFFFF, 0xE000, 0x0FFF, 0xFFFF,
0xFFFF, 0x8000, 0x03FF, 0xFFFF,
0xFFFF, 0x0000, 0x00FF, 0xFFFF,
0xFFFF, 0x00C3, 0x007F, 0xFFFF,
0xFFFE, 0x0301, 0xF03F, 0xFFFF,
0xFFF8, 0x0E0E, 0x7C3F, 0xFFFF,
0xFFF0, 0x381F, 0x3E1F, 0xFFFF,
0xFFF0, 0x703F, 0x9F8F, 0xFFFF,
0xEFE1, 0xF03F, 0x9FCF, 0xFFFF,
0xDFE1, 0xE03F, 0x8FE7, 0xFFFF,
0x9FC7, 0xE01F, 0x0FF0, 0x3FFF,
0x3F8F, 0xC00E, 0x07F8, 0x1FFF,
0x1F0F, 0xC000, 0x07FC, 0x3FFF,
0x8E1F, 0xE000, 0x0FF9, 0xFFFF,
0x803F, 0xE000, 0x0FFB, 0xFFFF,
0xC0FF, 0xF000, 0x1FF3, 0xFFFF,
0xFE3F, 0xF000, 0x1FF7, 0xFFFF,
0xFF9F, 0xF800, 0x3FE7, 0xFFFF,
0xFFCF, 0xFE00, 0xFFCF, 0xFFFF,
0xFFE7, 0xFF80, 0xFF9F, 0xFFFF,
0xFFF3, 0xFFFF, 0xFF3F, 0xFFFF,
0xFFF9, 0xFFFF, 0xFC7F, 0xFFFF,
0xFFFC, 0x7FFF, 0xF1FF, 0xFFFF,
0xFFFF, 0x1FFF, 0xE7FF, 0xFFFF,
0xFFFF, 0xC3FF, 0x0FFF, 0xFFFF,
0xFFFF, 0xF800, 0x7FFF, 0xFFFF,
};
/* the Image for the eyeball */
struct Image EyeImage =
{
28, 0, /* LeftEdge, TopEdge */
51, 28, 1, /* Width, Height, Depth of the image data */
EyeData, /* pointer to the start of the actual data */
0x1, 0x0, /* PlanePick, PlaneOnOff */
};
/* these are the IntuiText strings for the subitems */
struct IntuiText subtext[] =
{
{
0, 1, JAM2,
0, 1,
&TestFont,
"SUB ITEM #0.0",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"Text longer than the others!",
NULL,
},
/**/
{
0, 1, JAM2,
0, 0,
&TestFont,
"SUB ITEM #0.2",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"Here's A TEST ITEM",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"Commodore-Amiga, Inc.",
NULL,
},
/**/
{
0, 1, JAM2,
0, 0,
&TestFont,
"INTUITION",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"The Phantasm of Sleep",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"An Excursion",
NULL,
},
/**/
{
0, 1, JAM2,
0, 0,
&TestFont,
"Of the Mind",
NULL,
},
};
struct IntuiText OpenSubText[] =
{
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Font File",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Document",
NULL,
},
};
struct IntuiText ProjectItemText[] =
{
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Quit",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Print As",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Print",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Save As",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Save",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"Open",
NULL,
},
/**/
{
0, 1, JAM2,
1, 1,
&TopazSixty,
"New",
NULL,
},
};
/* these are the IntuiTexts for the items */
struct IntuiText itemtext[] =
{
{
0, 1, JAM2,
CHECKWIDTH, 1,
&TestFont,
"NOT QUITE THE EYEBALL",
NULL,
},
/**/
{
0, 1, JAM2,
CHECKWIDTH, 1,
&TestFont,
"ALMOST THE EYEBALL",
NULL,
},
/**/
{
0, 1, JAM2,
CHECKWIDTH, 1,
&TestFont,
"NOT USED, REPLACED WITH EYE IMAGE",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #1.0",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #1.1",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #1.2",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #2.0",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #2.1",
NULL,
},
/**/
{
0, 1, JAM2,
0, 1,
&TestFont,
"MENU ITEM #2.2",
NULL,
},
};
struct MenuItem OpenSubItems[] =
{
/* test SubItem 0 */
{
NULL, /* NextItem */
115, -5, 120, 9, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&OpenSubText[1], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 1 */
{
&OpenSubItems[0], /* NextItem */
115, 5, 120, 9, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&OpenSubText[0], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
};
/* the SubItem declarations */
struct MenuItem subitems[] =
{
/* test SubItem 0 */
{
NULL, /* NextItem */
145, 0, 224, 9, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[0], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 1 */
{
&subitems[0], /* NextItem */
145, 9, 224, 9, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[1], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 2 */
{
&subitems[1], /* NextItem */
145, 18, 224, 8, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[2], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 3 */
{
NULL, /* NextItem */
145, -5, 168, 11, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[3], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 4 */
{
&subitems[3], /* NextItem */
145, 6, 168, 11, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[4], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 5 */
{
&subitems[4], /* NextItem */
145, 17, 168, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[5], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 6 */
{
NULL, /* NextItem */
145, -10, 104, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[6], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 7 */
{
&subitems[6], /* NextItem */
145, 0, 104, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[7], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
/* test SubItem 8 */
{
&subitems[7], /* NextItem */
145, 10, 104, 8, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&subtext[8], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem of SubItems should be NULL */
NULL, /* NextSelect */
},
};
struct MenuItem items[] =
{
/* test MenuItem 0 */
{
NULL, /* NextItem */
0, 0, /* LeftEdge, TopEdge */
172 + CHECKWIDTH + COMMWIDTH + 15, 10, /* Width, Height */
/* Flags */
ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | CHECKED | COMMSEQ,
0x3, /* MutualExclude first and second items */
&itemtext[0], /* ItemFill */
NULL, /* SelectFill */
'R', /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 1 */
{
&items[0], /* NextItem */
0, 10, /* LeftEdge, TopEdge, Width, Height */
172 + CHECKWIDTH + COMMWIDTH + 15, 10, /* Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | COMMSEQ, /* Flags */
0x4, /* MutualExclude third item */
&itemtext[1], /* ItemFill */
NULL, /* SelectFill */
'J', /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 2 get the eyeball! */
{
&items[1], /* NextItem */
0, 20, /* LeftEdge, TopEdge */
172 + CHECKWIDTH + COMMWIDTH + 15, 28, /* Width, Height */
/* Flags: note that ITEMTEXT is not set */
ITEMENABLED | HIGHCOMP | CHECKIT | COMMSEQ,
0x4, /* MutualExclude third item */
&EyeImage, /* ItemFill points to the Image for the Eye */
NULL, /* SelectFill */
'M', /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 3 */
{
NULL, /* NextItem */
-10, 0, 150, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[3], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
&subitems[2], /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 4 */
{
&items[3], /* NextItem */
-10, 10, 150, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[4], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
/*??? &subitems[5], /* SubItem */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 5 */
{
&items[4], /* NextItem */
-10, 20, 150, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[5], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
&subitems[8], /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 6 */
{
NULL, /* NextItem */
-20, 5, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[6], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 7 */
{
&items[6], /* NextItem */
105, 5, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[7], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
/* test MenuItem 8 */
{
&items[7], /* NextItem */
0, 20, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&itemtext[8], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
};
/* ======================================================================== */
/* === BookItems ========================================================== */
/* ======================================================================== */
#define PROJECT_ITEM_COUNT 7
struct MenuItem ProjectItems[] =
{
{
NULL, /* NextItem */
0, 2, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[6], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[0], /* NextItem */
0, 12, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[5], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
&OpenSubItems[1], /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[1], /* NextItem */
0, 22, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[4], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[2], /* NextItem */
0, 32, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[3], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[3], /* NextItem */
0, 42, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[2], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[4], /* NextItem */
0, 52, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[1], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
{
&ProjectItems[5], /* NextItem */
0, 62, 112, 10, /* LeftEdge, TopEdge, Width, Height */
ITEMENABLED | ITEMTEXT | HIGHCOMP, /* Flags */
0, /* MutualExclude */
&ProjectItemText[0], /* ItemFill */
NULL, /* SelectFill */
NULL, /* Command */
NULL, /* SubItem */
NULL, /* NextSelect */
},
};
/* ======================================================================== */
/* ======================================================================== */
/* ======================================================================== */
/* here are the actual Menus which point to all of the above */
struct Menu menus[2][7] =
{
{
{
&menus[0][1], /* NextMenu */
3, 0, /* LeftEdge, TopEdge */
97, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Colors", /* MenuName */
&items[5], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
&menus[0][2], /* NextMenu */
100, 0, /* LeftEdge, TopEdge */
100, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Special", /* MenuName */
&items[2], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
NULL, /* NextMenu */
200, 0, /* LeftEdge, TopEdge */
100, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Brushes", /* MenuName */
&items[8], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
},
/* for the second set of Menus, shuffle up the data a little */
{
{
&menus[1][1], /* NextMenu */
10, 0, /* LeftEdge, TopEdge */
97, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Project", /* MenuName */
&ProjectItems[PROJECT_ITEM_COUNT - 1], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
&menus[1][2], /* NextMenu */
110, 0, /* LeftEdge, TopEdge */
70, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Edit", /* MenuName */
&items[2], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
&menus[1][3], /* NextMenu */
180, 0, /* LeftEdge, TopEdge */
90, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Format", /* MenuName */
&items[2], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
&menus[1][4], /* NextMenu */
270, 0, /* LeftEdge, TopEdge */
80, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Fonts", /* MenuName */
&items[2], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
/**/
{
NULL, /* NextMenu */
350, 0, /* LeftEdge, TopEdge */
70, 0, /* Width, Height */
MENUENABLED, /* Flags */
"Help", /* MenuName */
&items[2], /* FirstItem */
0, 0, 0, 0, /* system variables */
},
},
};
/* ======================================================================== */
/* ======================================================================== */
/* ======================================================================== */